//
// Created by Abstergo on 2024/6/18.
//

#ifndef TBS_CPP_LINKNODEINL_CUH
#define TBS_CPP_LINKNODEINL_CUH
template<typename V> LinkNode<V>::operator V &() {
  return value();
}

template<typename V> LinkNode<V>::operator V() CONST {
  return value();
}

template<typename V> CONST V &LinkNode<V>::value() CONST {
  return _data;
}

template<typename V> V &LinkNode<V>::value() {
  return _data;
}

template<typename V> bool LinkNode<V>::has_pre() CONST {
  return _pre != nullptr;
}

template<typename V> bool LinkNode<V>::has_after() CONST {
  return _after != nullptr;
}

template<typename V> LinkNode<V>::self *&LinkNode<V>::pre() {
  return _pre;
}

template<typename V> LinkNode<V>::self *&LinkNode<V>::after() {
  return _after;
}

template<typename V> const LinkNode<V>::self *LinkNode<V>::after() CONST {
  return _after;
}

template<typename V> const LinkNode<V>::self *LinkNode<V>::pre() CONST {
  return _pre;
}

#endif //TBS_CPP_LINKNODEINL_CUH
